package com.shujia.mllib

import org.apache.spark.ml.classification.LogisticRegressionModel
import org.apache.spark.ml.linalg
import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.sql.SparkSession

object Demo3PersonModelPre {
  def main(args: Array[String]): Unit = {
    /**
     * 1 1:4.9 2:3.9 3:3.0 4:131.0 5:79.8 6:63.7 7:77
     * （可能通过模型预测结果不对）
     */

    val spark: SparkSession = SparkSession
      .builder()
      .master("local[*]")
      .appName("Demo3PersonModelPre")
      .getOrCreate()

    /**
     * 1、加载模型
     */
    val model: LogisticRegressionModel = LogisticRegressionModel.load("spark/data/personModel")

    // 2、将数据转换为向量
    // 1 1:6.4 2:4.4 3:3.2 4:141.0 5:102.2 6:74.9 7:65
    val personVec: linalg.Vector = Vectors.dense(Array(6.4, 4.4, 3.2, 141.0, 102.2, 74.9, 65))

    // 3、使用模型进行预测
    /**
     * predict : 对一条数据进行预测
     * transform : 对一个数据集进行预测
     */
    val res: Double = model.predict(personVec)

    println(res)

  }

}
